﻿using AdvVerifyModels.Entities;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace AdvVerifyGUI.Job;


public interface IJob
{
    Task Completion { get; }

    Task Confirmation { get; }

    void Cancel();

    void Confirm();
}

public class JobRunOptions
{
    public long Id { get; set; }

    public string OutputDirectory { get; set; }

    public bool SkipMeasurement { get; set; }

    public bool SuppressImagesAfterCompletion { get; set; }
}

public class PatternResult
{
    public long Id { get; set; }

    public int Index { get; set; }

    public Coordinate Coordinate { get; set; }

    public int? Score { get; set; }

    public int Threshold { get; set; }

    public int? AddressingScore { get; set; }

    public int AddressingThreshold { get; set; }

    public IReadOnlyList<(string, double?)> Values { get; set; }
}

public record class ImageQuality(double Quality, double Current);
